package io;

import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

/**
 * 缓冲输出流的缓冲区问题
 */
public class FlushDemo {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos =  new FileOutputStream("bos.txt");
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        String line = "super idol的笑容，都没你的甜";
        byte [] data = line.getBytes(StandardCharsets.UTF_8);
        bos.write(data);
        /*
            flush方法是接口Flushable中定义的唯一的抽象方法
            而输出流的超类：java.io.OutputStream实现了该接口，一意味着所有的输出流都有
            这个方法
            其他高级流的flush实现就是调用其连接的流逇flush，目的是将flush动作传递下去
            直到
         */
        bos.flush();
        //缓冲流的close方法中会自动调用一次flush();
        bos.close();
    }
}
